#ifndef CELL_H
#define CELL_H
#include "GameOpt.h"

class Entity;

class Cell : public SaveLoad
{
public:
	Cell();
	~Cell();
	char isPresent() const; //return the ascci code for present, if its present. return false if not

	bool isWall() const;	//return true if the cell is Wall
	char isHuman() const;	//return the char of the Human on it (if there is one), return false if not
	char isMonster() const;	//return the char of the Monster on it (if there is one), return false if not
	
	char GetType() const;
	bool SetType(const char inType);
	bool SetpEntity(Entity *inpEntity);
	Entity *getPEntity() const;

	virtual bool SaveState(ofstream &);
	virtual bool LoadState(ifstream &);

private:
	Entity *pEntity; //pointer to Entity that is on the cell, Human\Monster
	char Type;	//type of the Cell:' ' for Empty. '*' for Wall, Latters for Present
};

#endif
